# 定义一个函数，可以返回两个数的最大值
def get_max_val(num1, num2):
    max_val = num1 if num1 > num2 else num2
    return max_val


# 定义一个函数f1，用于调用传入的函数并返回两个数的最大值
def f1(function, num1, num2):
    """
    功能：调用function返回num1,num2的最大值
    :param function:  表示接收一个函数
    :param num1: 传入的参数
    :param num2: 传入的参数
    :return: 返回num1和num2中的最大值
    """
    return function(num1, num2)


# 定义一个函数f2，用于同时返回两个数的和以及调用传入的函数返回的最大值
def f2(function, num1, num2):
    """
    功能：调用function返回num1,num2的最大值,同时返回两个数的和
    :param function:  表示接收一个函数
    :param num1: 传入的参数
    :param num2: 传入的参数
    :return: 返回两个数的和以及最大值
    """
    return num1 + num2, function(num1, num2)


# 调用f1函数，传入get_max_val函数和两个数值参数，打印出最大值
print(f1(get_max_val, 10, 20))

# 调用f2函数，传入get_max_val函数和两个数值参数，打印出两个数的和以及最大值
# x 接收的是两个数相加的和 y 接收的是get_max_val函数返回的最大值
x, y = f2(get_max_val, 10, 20)
print(f"x={x},y={y}")
